草庐IT

C++ 泛型 vector

全部标签

java - 继承泛型接口(interface)的子类

我有一个接口(interface)可以确保对象可以复制自己:publicinterfaceDuplicable>{publicTduplicate();}我现在有classXimplementsDuplicable但我还有一个扩展X的类Y。这不是问题,直到我需要另一个泛型类:publicclassDoStuffWithDuplicable>我不能通过Y使用DoStuffWithDuplicable的通用版本,因为它没有实现Duplicable但是Duplicable因为它继承自X。所以我试过了publicclassDoStuffWithDuplicable>..但这意味着稍后会引入不安

java - 如何在 Java 中获取具有泛型类型的类

我正在尝试进行这样的方法调用,publicclassGenericsTest{publicstaticMapcreateMap(Class>clazz){returnnull;}publicstaticvoidmain(String[]argv){Mapresult=createMap(TreeMap.class);}}但是我得到了这个错误,createMap(java.lang.Class>)intest.GenericsTestcannotbeappliedto(java.lang.Class)如何解决这个问题? 最佳答案 Ma

java - 在 Java 中,在泛型实例上调用 getClass 时如何避免原始类型?

假设我在Java中有这个:Listlist=newArrayList();list.getClass();最后一个表达式的类型是Class.我明白为什么,由于删除,它不能是Class>.但是为什么不能是Class>呢??如果我想将这个表达式的结果分配给一个以某种方式保持该类实际上是某种类型的信息List?ClasslistClass=list.getClass();//rawtypewarningClass>listClass=(Class>)list.getClass();//uncheckedcastwarning 最佳答案 首

使用 lambda 表达式时 Java 8 泛型 + 异常编译时错误

几天前,我开始重构一些代码以使用新的Java8Streams库。不幸的是,我在执行Stream::map时遇到了编译时错误,该方法被声明为抛出一个泛型E,该泛型E进一步指定为RuntimeException。有趣的是,当我切换到使用方法引用时,编译时错误消失了。这是一个错误,还是我的方法引用不等同于我的lambda表达式?(此外,我知道我可以将p->p.execute(foo)替换为Parameter::execute。我的实际代码具有执行方法的附加参数)。错误信息Error:(32,43)java:unreportedexceptionE;mustbecaughtordeclared

java - 参数中带有通配符的不明确重载泛型方法

给出以下声明interfaceBase{}interfaceSpecialextendsBase{}voidfoo(Baseb){}voidfoo(Specials){}为什么我会得到以下代码的编译错误:Specials=null;foo(s);//error:referencetofooisambiguous顺便说一句,可以通过将第二种方法的声明更改为来解决此问题voidfoo(Specials){} 最佳答案 首先,一个非常有趣的问题。没有泛型考虑以下代码:interfaceNoGenericsBase{}interfaceNo

java - 为什么这些泛型不能在 OpenJDK7 中编译,但可以在 OpenJDK6 中编译

classHasId{}classHasStringIdextendsHasId{}classAlertextendsHasStringId{}classBaseController>{//abstractClassgetModelClass();}classAlertControllerextendsBaseController{//errorhere//@OverrideClassgetModelClass(){//returnAlert.class;//}}在OpenJDK6上编译良好,但在OpenJDK7上给出:AlertController.java:50:error:typ

java - 泛型函数调用未在扩展多个接口(interface)的 Java 8 中编译

运行Java1.8JavaSE-1.8(jdk1.8.0_20)这个类:publicclassSimpleQuestion{publicstaticvoidmain(String[]args){DoNothing();DoNothing2();DoNothing3();DoNothing4();}publicinterfaceInterface1{publicvoidgo();}publicinterfaceInterface2{publicXgo2();}privatestatic&Interface1>voidDoNothing(){return;}privatestaticvoi

java - 泛型:无法从 <capture#1-of 转换?将 Object,D> 扩展到 <S,D>

我有以下类结构:publicinterfaceCopyMapper{publicDmap(SsourceObject);}publicinterfaceCopyMapperFactory{publicCopyMappergetMapper(ClasssourceClass,ClassdestinationClass);}publicclassMapper{publicDmap(Ssource,ClassdestinationClass){//ThisiswhereIgetcompiletimeerrorCopyMappercopyMapper=mapperFactory.getMapp

java - 结合可变参数和泛型以在 Java 中进行链式比较

这是一个棘手的问题。我在同时使用可变参数和泛型之间存在冲突。按照给定的代码:publicclassMyObjectimplementsComparable{privateStringname;privateintindex;@OverridepublicintcompareTo(MyObjecto){if(name.compareTo(o.name)!=0)returnname.compareTo(o.name);return((Integer)index).compareTo(o.index);}}我想要compareTo使用多个比较条件的方法。如果字符串相同,则改用整数。我会说通常

java - 调用泛型构造函数?

我正在尝试为我的数据库创建自己的存储库以供学习,所以我正在尝试这样的事情:@OverridepublicListgetList(){Cursorcursor=getCursor(somehowGetClassOfT(),null,null);//howtodothis?//excesscoderemoved,restoffunctionnotrelevanttoquestionreturnlist;}protectedCursorgetCursor(Classclazz,Stringselection,String[]selectionArgs){DatabaseObjectdatab